package com.dragon.modules.yuegou.client.ali.enums;

import java.util.Map;
import java.util.function.UnaryOperator;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public enum MemberCodeType {

	/**
	 * 动态二维码
	 */
	DQRCODE(1, "dqrcode"),
	
	/**
	 * 动态条形码
	 */
	DBARCODE(2, "dbarcode"),
		
	/**
	 * 静态码-二维码
	 */
	QRCODE(3, "qrcode"),
	
	/**
	 * 静态码-条形码 
	 */
	BARCODE(4, "barcode"),
	
	/**
	 * 商户自主生成动态二维码
	 */
	MDQRCODE(5, "mdqrcode"),
	
	/**
	 * 商户自主生成动态条形码 
	 */
	MDBARCODE(6, "mdbarcode");

	/**
	 * 枚举标识
	 */
	private final Integer code;

	/**
	 * 别名
	 */
	private final String alias;

	private MemberCodeType(Integer code, String alias) {
		this.code = code;
		this.alias = alias;
	}


	/**
	 * 枚举标识
	 *
	 * @return code
	 */
	public Integer getCode() {
		return code;
	}

	/**
	 * 别名
	 *
	 * @return alias
	 */
	public String getAlias() {
		return alias;
	}

	/**
	 * 把code转为设备类型
	 *
	 * @param code 代码
	 * @return 设备类型
	 */
	public static MemberCodeType from(Integer code) {
		if (code == null) {
			return null;
		}
		return CODE_MAP.get(code);
	}

	/**
	 * Code Map for DeviceType
	 */
	private static final Map<Integer, MemberCodeType> CODE_MAP = Stream.of(MemberCodeType.values())
			.collect(Collectors.toMap(MemberCodeType::getCode, UnaryOperator.identity()));
}
